package com.ship.dispatch.bean;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ship.common.core.base.Joinable;
import com.ship.common.core.mapping.TableColumn;
import com.ship.dispatch.util.NumberFormatUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 燃油台账交还船信息
 * @TableName tz_fuel_delivery
 */
@TableName(value ="tz_fuel_delivery")
@Data
public class TzFuelDelivery extends BaseBean implements Joinable {

    /**
     * 查询类型（1：VLSFO，2：LSMGO）
     */
    @ApiModelProperty(value = "查询类型（1：VLSFO，2：LSMGO）")
    @TableField(exist = false)
    private Integer selectType;

    /**
     * 船舶名称
     */
    @TableColumn
    @ApiModelProperty(value = "船舶名称")
    private String shipName;

    /**
     * 船舶IMO
     */
    @TableColumn
    @ApiModelProperty(value = "船舶IMO")
    private String imo;

    /**
     * 船东
     */
    @TableColumn
    @ApiModelProperty(value = "船东")
    private String shipOwner;

    /**
     * 承租人
     */
    @TableColumn
    @ApiModelProperty(value = "承租人")
    private String lessee;

    /**
     * 事件类型
     */
    @TableColumn
    @ApiModelProperty(value = "事件类型")
    private String eventType;

    /**
     * 交还船类型（1：交船，2：还船）
     */
    @TableColumn
    @ApiModelProperty(value = "交还船类型（1：交船，2：还船）")
    private Integer deliveryType;

    /**
     * 交还船时间
     */
    @TableColumn
    @ApiModelProperty(value = "交还船时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date deliveryTime;

    /**
     * 船运合同类型（租入长期船、租入短期船、船舶租出、内部转租）
     */
    @TableColumn
    @ApiModelProperty(value = "船运合同类型（租入长期船、租入短期船、船舶租出、内部转租）")
    private String contractType;

    /**
     * VLSFO 剩余量（吨）
     */
    @TableColumn
    @ApiModelProperty(value = "VLSFO 剩余量（吨）")
    private BigDecimal vlsfo;

    /**
     * LSMGO 剩余量（吨）
     */
    @TableColumn
    @ApiModelProperty(value = "LSMGO 剩余量（吨）")
    private BigDecimal lsmgo;

    /**
     * VLSFO价格
     */
    @TableField(exist = false)
    private BigDecimal vlsfoPrice;

    /**
     * LSMGO价格
     */
    @TableField(exist = false)
    private BigDecimal lsmgoPrice;

    /**
     * VLSFO 剩余量（吨）
     */
    @TableColumn
    @ApiModelProperty(value = "VLSFO 剩余量（吨）")
    @TableField(exist = false)
    private String vlsfoStr;

    /**
     * LSMGO 剩余量（吨）
     */
    @TableColumn
    @ApiModelProperty(value = "LSMGO 剩余量（吨）")
    @TableField(exist = false)
    private String lsmgoStr;

    /**
     * 附件信息
     */
    @TableColumn
    @ApiModelProperty(value = "附件信息")
    private String fileInfo;

    @ApiModelProperty(value = "附件下载地址信息")
    @ExcelIgnore
    private String filePathInfo;

    /**
     * vlsfo量1
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量1")
    private BigDecimal vlsfoOne;

    /**
     * vlsfo量1价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量1价格")
    private BigDecimal vlsfoOnePrice;

    /**
     * vlsfo量2
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量2")
    private BigDecimal vlsfoTwo;

    /**
     * vlsfo量2价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量2价格")
    private BigDecimal vlsfoTwoPrice;

    /**
     * vlsfo量3
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量3")
    private BigDecimal vlsfoThree;

    /**
     * vlsfo量3价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量3价格")
    private BigDecimal vlsfoThreePrice;

    /**
     * vlsfo燃油结算（美元）
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo燃油结算（美元）")
    private BigDecimal vlsfoSettlement;

    /**
     * lsmgo量1
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量1")
    private BigDecimal lsmgoOne;

    /**
     * lsmgo量1价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量1价格")
    private BigDecimal lsmgoOnePrice;

    /**
     * lsmgo量2
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量2")
    private BigDecimal lsmgoTwo;

    /**
     * lsmgo量2价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量2价格")
    private BigDecimal lsmgoTwoPrice;

    /**
     * lsmgo量3
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量3")
    private BigDecimal lsmgoThree;

    /**
     * lsmgo量3价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量3价格")
    private BigDecimal lsmgoThreePrice;

    /**
     * 燃油结算（美元）
     */
    @TableColumn
    @ApiModelProperty(value = "燃油结算（美元）")
    private BigDecimal lsmgoSettlement;

    /**
     * 备注
     */
    @TableColumn
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * vlsfo量1
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量1")
    @TableField(exist = false)
    private String vlsfoOneStr;

    /**
     * vlsfo量1价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量1价格")
    @TableField(exist = false)
    private String vlsfoOnePriceStr;

    /**
     * vlsfo量2
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量2")
    @TableField(exist = false)
    private String vlsfoTwoStr;

    /**
     * vlsfo量2价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量2价格")
    @TableField(exist = false)
    private String vlsfoTwoPriceStr;

    /**
     * vlsfo量3
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量3")
    @TableField(exist = false)
    private String vlsfoThreeStr;

    /**
     * vlsfo量3价格
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo量3价格")
    @TableField(exist = false)
    private String vlsfoThreePriceStr;

    /**
     * vlsfo燃油结算（美元）
     */
    @TableColumn
    @ApiModelProperty(value = "vlsfo燃油结算（美元）")
    @TableField(exist = false)
    private String vlsfoSettlementStr;

    /**
     * lsmgo量1
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量1")
    @TableField(exist = false)
    private String lsmgoOneStr;

    /**
     * lsmgo量1价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量1价格")
    @TableField(exist = false)
    private String lsmgoOnePriceStr;

    /**
     * lsmgo量2
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量2")
    @TableField(exist = false)
    private String lsmgoTwoStr;

    /**
     * lsmgo量2价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量2价格")
    @TableField(exist = false)
    private String lsmgoTwoPriceStr;

    /**
     * lsmgo量3
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量3")
    @TableField(exist = false)
    private String lsmgoThreeStr;

    /**
     * lsmgo量3价格
     */
    @TableColumn
    @ApiModelProperty(value = "lsmgo量3价格")
    @TableField(exist = false)
    private String lsmgoThreePriceStr;

    /**
     * 燃油结算（美元）
     */
    @TableColumn
    @ApiModelProperty(value = "燃油结算（美元）")
    @TableField(exist = false)
    private String lsmgoSettlementStr;

    /**
     * 流程实例Id
     */
    @ApiModelProperty(value = "流程实例Id")
    @TableField(exist = false)
    private String processInstanceId;

    @Override
    public String getLabel() {
        return null;
    }

    @Override
    public String getValue() {
        return null;
    }

    public String getVlsfoStr(){
        String result = null;
        if (getVlsfo() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfo());
        }
        return result;
    }

    public String getLsmgoStr(){
        String result = null;
        if (getLsmgo() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgo());
        }
        return result;
    }

    public String getVlsfoOneStr(){
        String result = null;
        if (getVlsfoOne() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoOne());
        }
        return result;
    }

    public String getVlsfoOnePriceStr(){
        String result = null;
        if (getVlsfoOnePrice() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoOnePrice());
        }
        return result;
    }

    public String getVlsfoTwoStr(){
        String result = null;
        if (getVlsfoTwo() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoTwo());
        }
        return result;
    }

    public String getVlsfoThreeStr(){
        String result = null;
        if (getVlsfoThree() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoThree());
        }
        return result;
    }

    public String getVlsfoTwoPriceStr(){
        String result = null;
        if (getVlsfoTwoPrice() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoTwoPrice());
        }
        return result;
    }

    public String getVlsfoThreePriceStr(){
        String result = null;
        if (getVlsfoThreePrice() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoThreePrice());
        }
        return result;
    }

    public String getVlsfoSettlementStr(){
        String result = null;
        if (getVlsfoSettlement() != null) {
            result = NumberFormatUtil.numericFormatting(getVlsfoSettlement());
        }
        return result;
    }

    public String getLsmgoOneStr(){
        String result = null;
        if (getLsmgoOne() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoOne());
        }
        return result;
    }

    public String getLsmgoOnePriceStr(){
        String result = null;
        if (getLsmgoOnePrice() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoOnePrice());
        }
        return result;
    }

    public String getLsmgoTwoStr(){
        String result = null;
        if (getLsmgoTwo() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoTwo());
        }
        return result;
    }

    public String getLsmgoTwoPriceStr(){
        String result = null;
        if (getLsmgoTwoPrice() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoTwoPrice());
        }
        return result;
    }

    public String getLsmgoThreeStr(){
        String result = null;
        if (getLsmgoThree() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoThree());
        }
        return result;
    }

    public String getLsmgoThreePriceStr(){
        String result = null;
        if (getLsmgoThreePrice() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoThreePrice());
        }
        return result;
    }

    public String getLsmgoSettlementStr(){
        String result = null;
        if (getLsmgoSettlement() != null) {
            result = NumberFormatUtil.numericFormatting(getLsmgoSettlement());
        }
        return result;
    }
}